package com.bluebridgecup.BasicAlgorithms.oneDimensionPrefixSumAndDifference;

import java.util.Scanner;

public class TrustedShopQuery {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取店铺数量n
        int n = in.nextInt();
        // 创建一个长度为n + 10的数组a，用于后续处理点赞情况，多分配一些空间避免越界风险
        int[] a = new int[n + 10];

        // 读取点赞区间的数量t
        int t = in.nextInt();
        // 读取查询的数量q
        int q = in.nextInt();
        // 读取认定信赖店铺的点赞值标准x
        int x = in.nextInt();

        // 处理t个点赞区间
        for (int i = 1; i <= t; i++) {
            // 读取点赞区间的左端点l
            int l = in.nextInt();
            // 读取点赞区间的右端点r
            int r = in.nextInt();
            // 在差分数组a中，对l位置的店铺点赞数增加1
            a[l]++;
            // 在差分数组a中，对r + 1位置的店铺点赞数减少1，用于后续还原每个店铺的实际点赞数
            a[r + 1]--;
        }

        // 根据差分数组a，计算每个店铺的实际点赞数
        for (int i = 1; i <= n; i++) {
            a[i] += a[i - 1];
        }

        // 处理q次查询
        for (int i = 1; i <= q; i++) {
            int sum = 0;
            // 读取查询区间的左端点l
            int l = in.nextInt();
            // 读取查询区间的右端点r
            int r = in.nextInt();
            // 遍历查询区间[l, r]，统计点赞数大于等于x的店铺数量
            for (int j = l; j <= r; j++) {
                if (a[j] >= x) {
                    sum++;
                }
            }
            // 输出查询区间内信赖店铺的数量
            System.out.println(sum);
        }

        // 关闭Scanner，释放资源
        in.close();
    }
}